package master;

/**
 * @author chenyw
 * @date 2022/7/25 17:14
 */
public class M66plusOne {
    //自己写法
/*    public int[] plusOne(int[] digits) {
        int n = digits.length;
        int add;
        int sum = digits[n - 1] + 1;
        digits[n - 1] = sum % 10;
        if (sum < 10) {
            return digits;
        }
        add = sum / 10;
        int i = n - 2;
        while (i >= 0) {
            int tmp = digits[i] + add;
            digits[i] = tmp % 10;
            add = tmp / 10;
            if (add == 0) {
//                break;
                return digits;
            }
            i--;
        }
        if (add == 0) {
            return digits;
        } else {
            int[] res = new int[n + 1];
//            res[0] = add;
//            for (int j = 0; j < n; j++) {
//                res[j + 1] = digits[j];
//            }
            res[0] = 1;
            return res;
        }
    }*/

    //大佬写法
    public int[] plusOne(int[] digits) {
        int n = digits.length;
        for (int i = n - 1; i >= 0; i--) {
            if (digits[i] != 9) {
                digits[i]++;
                //这句很秀
                return digits;
            }
            digits[i] = 0;
        }
        int[] res = new int[n + 1];
        res[0] = 1;
        return res;
    }
}
